Is neo4j the best tool to find all possible multi-hop paths between two nodes

My brain trust came up with this:

Post filter the paths with:

WHERE all(i in range(0, length(path)-2) WHERE
  relationships(path)[i+1].departure >   relationships(path)[i].arrival
) 

But that will not be as optimal as being able to filter inside the repeating pattern. If you study the example in the docs Variable length patterns - Cypher Manual they have made a nice trick where nodes represent the stops for a "time table".

I don't know if that would be an option, to change the model in a way so more properties lives on nodes instead of on the relationships? That may help both wirting the query as well as make it more efficient/faster.

Obvisouly, that depends on the size of the graph, maybe it is "fast enogh" just the way it is now?