@classmethod
def _get_score(cls, score_methods, score_function, new_pair, *args, **kwargs):
    """Cycle function syntaxes until working is found, then return score if found or raise error."""
    chosen_method_id = score = None
    try:
        _function_arguments = [*new_pair.values(), args, kwargs]
    except (TypeError, SyntaxError):
        _function_arguments = []
        for _val in new_pair.values():
            _function_arguments.append(_val)
        _function_arguments += [args, kwargs]
    for id_method, score_method in enumerate(score_methods):
        try:
            score = score_method(score_function, _function_arguments, 2)
        except TypeError:
            pass
        else:
            chosen_method_id = id_method
            break
    if chosen_method_id != 0:
        assert chosen_method_id is not None, cls._get_function_type_error_message(
            score_function, TypeError)
        score_methods[:] = score_methods[chosen_method_id:] + score_methods[:
            chosen_method_id]
    return score
