Here we need to assume that our A* protocol differs slightly from standard A*.
it will practice node-tying, meaning that when it visits a rule node or an item node, then it also (atomically) visits all nodes on the path to its lookahead goal node.