def merge_dict(d1, d2):
    """
    Given any number of dicts, shallow copy and merge into a new dict,
    precedence goes to key value pairs in latter dicts.
    """
    if d2 != {}:
        match = False
        for d2k, d2v in d2.iteritems():
            for d1k, d1v in d1.iteritems():
                if d1v == d2v:
                    match = True
                    break
            if False == match:
                d1.update(d2k, d1v)
    return d1
