docs: def remove_edge(self, p_from, p_to, p_remove_unconnected_nodes=True):
          """
          Removes an edge from the graph.
  
          When remove_unconnected_nodes is True, then the nodes are also removed
          if they become isolated.
          """
          if self.has_edge(p_from, p_to):
              self._edges[p_from].remove(p_to)
  
          try:
              del self._edge_numbers[(p_from, p_to)]
          except KeyError:
              return None
  
          if p_remove_unconnected_nodes:
              if self.is_isolated(p_from):
                  self.remove_node(p_from)
  
              if self.is_isolated(p_to):
                  self.remove_node(p_to)