'Initialise, optionally with a list of edges.
Each edge takes the form of a (requirer, required) tuple.'

def __init__(self, edges=None):

    edges = (edges or [])
    self._graph = Graph()
    for e in edges:
        self += e
