Why is this an `||` ? I'm not sure what happens if there is a different node with the same path, can you walk me through your thinking?  (nitpick: if you reverse the order you might save a call to memcmp)