'Return an iterator over all of the edges in the graph.'

def edges(self):

    def outgoing_edges(rqr, node):
        if node.disjoint():
            (yield (rqr, None))
        else:
            for rqd in node:
                (yield (rqr, rqd))
    return itertools.chain.from_iterable((outgoing_edges(*i) for i in six.iteritems(self)))
