def add_node(node)
      raise Abuelo::Exceptions::NodeAlreadyExistsError if has_node?(node)

      @nodes[node.name] = node
      node.graph = self

      self
    end
def add_node(node)
      raise Abuelo::Exceptions::NodeAlreadyExistsError if has_node?(node)

      @nodes[node.name] = node
      node.graph = self

      self
    end
Adds a node to the graph.

 @param [Abuelo::Node] node to add

 @return [Abuelo::Graph] the graph

 @raise [Abuelo::Exceptions::NodeAlreadyExistsError] if the node is
   already contained in the graph