def update_existing(dict1, dict2, copy=False, assert_exists=False,
                    iswarning=False, alias_dict=None):
    r
    if assert_exists:
        try:
            assert_keys_are_subset(dict1, dict2)
        except AssertionError as ex:
            from utool import util_dbg
            util_dbg.printex(ex, iswarning=iswarning, N=1)
            if not iswarning:
                raise
    if copy:
        dict1 = dict(dict1)
    if alias_dict is None:
        alias_dict = {}
    for key, val in six.iteritems(dict2):
        key = alias_dict.get(key, key)
        if key in dict1:
            dict1[key] = val
    return dict1