def reverseDict(source):
    """
    Reverse keys and values in a mapping.
    """
    new = {}

    for key, values in source.iteritems():
        for value in values:
            new.setdefault(value, []).append(key)

    return new