def _copy_model_param_hints_EXPR(target, source, *, param_hints_elements=
    None, param_hints_elastic=None):
    """
    Copy parameters (set hints) from Parameters object (source) to a model (target)
    ( Sets the attribute 'expr' in the model hint to the copied parameter name,
      use only on complete models that can be used for model fitting)

    .. warning

       This updates ``target`` in-place

    Parameters
    ----------
    target : lmfit.Model
        The model to be updated
    source : lmfit.Parameters
        The model to copy from
    params_hints_elements : list
       The names of the parameters to copy for element models
    params_hints_ellastic : list
       The names of the parameters to copy for elastic scattering model


    Note: function is part of the fix for compatibility with lmfit 0.9.13.
    Dmitri G. (08/19/2019)
    """
    if param_hints_elements is None:
        param_hints_elements = []
    if param_hints_elastic is None:
        param_hints_elastic = []
    for hint_name, hint_values in target.param_hints.items():
        if hint_name.startswith('compton'):
            continue
        if hint_name.startswith('elastic'):
            params = param_hints_elastic
        else:
            params = param_hints_elements
        for label in params:
            value = source[label].value
            if hint_name.endswith(label
                ) and label != hint_name and not hint_name.startswith('compton'
                ):
                hint_values[label] = value
                hint_values['expr'] = label
