def METHOD_NAME(state, requirements):
    """
    Parameters
    ----------
    state, requirements : dict
        If a property is required but the specific value does not
        matter then use 'ANY VALUE' as the value in `requirements`.
    Returns
    -------
    list of strings describing (for human consumption) which
    conditions are not satisfied.  If all conditions are satisfied
    then returns an empty list.
    """
    unsatisfied = []
    def unsatisfied_requirements(st, req):
        # Recursively find requirements
        for key, value in req.items():
            try:
                cond_value = st[key]
            except KeyError:
                msg = ("Requires '{}={}' but '{}' not in state dict."
                       .format(key, value, key))
                unsatisfied.append(msg)
            else:
                if isinstance(value, dict):
                    unsatisfied_requirements(cond_value, value)
                elif value != 'ANY VALUE' and cond_value != value:
                    msg = ("Requires '{}={}' not '{}={}'."
                           .format(key, value, key, cond_value))
                    unsatisfied.append(msg)
    unsatisfied_requirements(state, requirements)
    return unsatisfied