docs: def filterStack(self, filters):
          """
          Filter the ObjectGraph in-place by removing all edges to nodes that
          do not match every filter in the given filter list
  
          Returns a tuple containing the number of: (nodes_visited, nodes_removed, nodes_orphaned)
          """
          visited, removes, orphans = filter_stack(self.graph, self, filters)
  
          for last_good, tail in orphans:
              self.graph.add_edge(last_good, tail, edge_data='orphan')
  
          for node in removes:
              self.graph.hide_node(node)
  
          return len(visited)-1, len(removes), len(orphans)