new style traversals
traverse based on destination as well
Merge branch 'traverse-edge' into unstable