docs: def _equivalent_node_iterator_helper(self, node: BaseEntity, visited: Set[BaseEntity]) -> BaseEntity:
          """Iterate over nodes and their data that are equal to the given node, starting with the original."""
          for v in self[node]:
              if v in visited:
                  continue
  
              if self._has_no_equivalent_edge(node, v):
                  continue
  
              visited.add(v)
              yield v
              yield from self._equivalent_node_iterator_helper(v, visited)