Removes an edge from the ``DictGraph``. An edge is a pair of **node 
        objects**. The **node objects** are not removed from the ``DictGraph``.
        
        Arguments:
        
          - edge(``tuple``) 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 removed.

def del_edge(self, edge, double=False):
        """
        Removes an edge from the ``DictGraph``. An edge is a pair of **node 
        objects**. The **node objects** are not removed from the ``DictGraph``.
        
        Arguments:
        
          - edge(``tuple``) 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 removed.
            
        """
        (left_entity, right_entity) = edge
        self[left_entity].pop(right_entity)
        if double:
            self.del_edge((edge[1], edge[0]))