@classmethod
def copy(cls, graph, node_label, edge_label='edge'):
    """Create a copy of the graph."""
    copy_nodes_q = 'MATCH (n:{}) CREATE (n1:{}) SET n1=n\n'.format(graph.
        _node_label, node_label)
    graph.execute(copy_nodes_q)
    copy_edges_q = ('MATCH (n:{})-[r:{}]->(m:{}), (n1:{}), (m1:{}) \n'.
        format(graph._node_label, graph._edge_label, graph._node_label,
        node_label, node_label) + """WHERE n1.id=n.id AND m1.id=m.id 
""" +
        'MERGE (n1)-[r1:{}]->(m1) SET r1=r\n'.format(edge_label))
    graph.execute(copy_edges_q)
    return cls(driver=graph._driver, node_label=node_label, edge_label=
        edge_label, unique_node_ids=graph.unique_node_ids)
