A Branch has three relationship pointers: Parent, Sibling, and Child. With these three pointers starting at any Branch any other Branch can be found. Except for the root, all Branches will have a Parent. A Sibling or Child may or may not exist for a given Branch.
The example shows only comma separators, but others, such as a dash for Times or a plus for Numbers can be used.
If “/A2” is requested and starting at the Site’s Branch, the Child is examined first (“/A1”). This is not a match, and the Sibling (“/A2”) is examined which returns a match.
If “/A2,B2” is requested first “/A2” is found as described above. Then staring with the Child (“A2,B1”) the search continues with a mismatch. The Sibling (“A2,B2”) is examined next and returns a match.