fn find_next_child_to_enter<NodeId>( entered: &mut Vec<(NodeId, Vec<NodeId>)>, exited: &BTreeSet<NodeId>, ) -> Option<NodeId>where NodeId: Ord,
Find the next child node, if any, that we have not entered.