def check_stmt(stmt, conditions, evid_policy='any'):
    """Decide whether a statement meets the conditions.

    Parameters
    ----------
    stmt : indra.statements.Statement
        INDRA Statement that should be checked for conditions.
    conditions : dict
        Conditions represented as key-value pairs that statements'
        metadata can be compared to. NOTE if there are multiple conditions
        provided, the function will require that all conditions are met to
        return True.
    evid_policy : str
        Policy for checking statement's evidence objects. If 'all', then the
        function returns True only if all of statement's evidence objects meet
        the conditions. If 'any', the function returns True as long as at
        least one of statement's evidences meets the conditions.

    Return
    ------
    meets_conditions : bool
        Whether the Statement meets the conditions.
    """
    evid_checks = []
    for evid in stmt.evidence:
        emmaa_anns = evid.annotations.get('emmaa')
        if emmaa_anns:
            metadata = emmaa_anns.get('metadata')
            checks = []
            for key, value in conditions.items():
                checks.append(metadata[key] == value)
            evid_checks.append(all(checks))
            if all(checks) and evid_policy == 'any':
                break
    # There are no evidence checks if stmt doesn't have emmaa annotations,
    # in this case we say it meets conditions by default
    if not evid_checks:
        return True
    # Make decision based on the evidence policy
    if evid_policy == 'any':
        return any(evid_checks)
    elif evid_policy == 'all':
        return all(evid_checks)