This was a long time ago but I've worked on a project in the last few weeks that used a very similar process. Essentially you want to traverse through a path of valid nodes to get from one node to another.
In this example, you had
:Station nodes that were the starting point of a traversal. You'd find the best starting points based in the user's location (for example, the closest bus stop to the office). From there you would traverse through until you can alight a
:Service (ie 09:00 from London Paddington on 30 July) at a
Legs are individual segments of a service which go from one place to another - in this case a train journey from Bristol to London would take the route Bristol > Bath > Chippenham > Swindon > Didcot Parkway > Reading > London Paddington.
You'd then stay on a Leg for as long as possible (traversing through the
-[:NEXT_LEG]-> relationships until you reach a platform at your destination.
The downside to using Cypher in this approach is that it would first need to traverse all paths before you could filter the results. The Traversal framework gives you greater control on what you expand, so you don't traverse off in the wrong direction.
I only had 10 minutes for the talk so I couldn't go into too much detail.
Max De Marzi has some great examples on how to use the traversal framework:
I hope that helps. What are you trying to build?