def is_matching(edges):
    """Determines whether the given set of edges is a matching.

    A matching is a subset of edges in which no node occurs more than
    once.

    Parameters
    ----------
    edges : iterable
        A iterable of edges.

    Returns
    -------
    is_matching : bool
        True if the given edges are a matching.

    Example
    -------
    This example checks two sets of edges, both derived from a
    single Chimera unit cell, for a matching. Because every node in a Chimera
    unit cell connects to four other nodes in the cell, the first set, which
    contains all the edges, repeats each node 4 times; the second is a subset
    of those edges found using the `min_maximal_matching()` function.

    >>> import dwave_networkx as dnx
    >>> G = dnx.chimera_graph(1, 1, 4)
    >>> dnx.is_matching(G.edges())
    False
    >>> dnx.is_matching({(0, 4), (1, 5), (2, 7), (3, 6)})
    True

    """
    return len(set().union(*edges)) == len(edges) * 2
