Eulerian path algorithm