docs: def restore_node(self, node):
          """
          Restores a previously hidden node back into the graph and restores
          all of its incoming and outgoing edges.
          """
          try:
              self.nodes[node], all_edges = self.hidden_nodes[node]
              for edge in all_edges:
                  self.restore_edge(edge)
              del self.hidden_nodes[node]
          except KeyError:
              raise GraphError('Invalid node %s' % node)