docs: def collapse_nodes(graph, survivor_mapping: Mapping[BaseEntity, Set[BaseEntity]]) -> None:
      """Collapse all nodes in values to the key nodes, in place.
  
      :param pybel.BELGraph graph: A BEL graph
      :param survivor_mapping: A dictionary with survivors as their keys, and iterables of the corresponding victims as
       values.
      """
      inconsistencies = surviors_are_inconsistent(survivor_mapping)
      if inconsistencies:
          raise ValueError('survivor mapping is inconsistent: {}'.format(inconsistencies))
  
      for survivor, victims in survivor_mapping.items():
          for victim in victims:
              collapse_pair(graph, survivor=survivor, victim=victim)
  
      _remove_self_edges(graph)