code: def find_best_matching_node(self, new, old_nodes):
          
          name = new.__class__.__name__
          #: TODO: We should pick the BEST one from this list
          #: based on some "matching" criteria (such as matching ref name or params)
          matches = [c for c in old_nodes if name == c.__class__.__name__]
          if self.debug:
              print("Found matches for {}: {} ".format(new, matches))
          return matches[0] if matches else None
docs: Find the node that best matches the new node given the old nodes. If no
              good match exists return `None`.