title: Guarantees on the evaluation order of recursive relationship match in Cyher/Neo4j
body: <p>For a match like <code>MATCH (node0 {id: 1})-[:REL*]-&gt;(nodeN)</code>,</p>
  <p>are there any guarantees on:</p>
  <ul>
  <li>match being Depth-First / Breath-First?</li>
  <li>match branching from one node through one relation or another?</li>
  </ul>
  <p>Experimenting on this, for the same data set (created from integration tests with entities created in the same order each time), two Neo4j instances (one in docker ran through github action, another on docker desktop) seems to have:</p>
  <ul>
  <li>the same Depth-First semantics</li>
  <li>different branching order</li>
  </ul>
  <p><a href="https://i.stack.imgur.com/FtJg1.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/FtJg1.png" alt="branching" /></a></p>
  <p>Is there any Cypher parameters to influence 1) DFS vs. BFS behaviour 2) order of traversal from one node i.e. based on a relation property</p>
  <p>I know there are traversal (i.e. tree-spanning) algorithms that do a similar thing but I don't want to explore them yet for the reason they are more restrictive in regard to property filtering (being able to filter only by labels)</p>