code: def interjoint_paths(self):
      
      paths = []
      for tree in self.components():
        subpaths = self._single_tree_interjoint_paths(tree)
        paths.extend(subpaths)
  
      return paths
docs: Returns paths between the adjacent critical points
      in the skeleton, where a critical point is the set of
      terminal and branch points.