code: def build_path(graph, node1, node2, path=None):
      
      if path is None:
          path = []
      if node1 is node2:
          return path
      path.append(node2)
      for pred in graph.all_preds(node2):
          if pred in path:
              continue
          build_path(graph, node1, pred, path)
      return path
docs: Build the path from node1 to node2.
      The path is composed of all the nodes between node1 and node2,
      node1 excluded. Although if there is a loop starting from node1, it will be
      included in the path.