Wrote Traverser. Benchmarks show it's a lot slower, but it can easily handle different edge types.