code: def add_edge(self, edge, double=False):
          
          (left_entity, right_entity) = edge
          self.add_node(left_entity)
          self.add_node(right_entity)
          self[left_entity].update({right_entity:self[right_entity]})
          if double:
              self.add_edge((edge[1], edge[0]))
docs: Adds an edge to the ``DictGraph``. An edge is just a pair of **node 
          objects**. If the **node objects** are not in the graph they are 
          created.
          
          Arguments:
          
            - edge(iterable) An ordered pair of **node objects**. The edge is 
              assumed to have a direction from the first to the second **node 
              object**.
            - double(``bool``) [default: ``False```] If ``True`` the the reverse 
              edge is also added.