adds more correct behaviour with const/non-const edge iterators