def add_edge(self, edge, double=False):
(left_entity, right_entity) = edge<EOL>self.add_node(left_entity)<EOL>self.add_node(right_entity)<EOL>self[left_entity].update({right_entity:self[right_entity]})<EOL>if double:<EOL><INDENT>self.add_edge((edge[<NUM_LIT:1>], edge[<NUM_LIT:0>]))<EOL><DEDENT>
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.