public Value evaluateRuleSet(EndpointRuleSet ruleset, Map<Identifier, Value> parameterArguments) {
        return scope.inScope(() -> {
            for (Parameter parameter : ruleset.getParameters()) {
                parameter.getDefault().ifPresent(value -> scope.insert(parameter.getName(), value));
            }

            parameterArguments.forEach(scope::insert);

            for (Rule rule : ruleset.getRules()) {
                Value result = handleRule(rule);
                if (!result.isEmpty()) {
                    return result;
                }
            }
            throw new RuntimeException("No rules in ruleset matched");
        });
    }
Evaluate the provided ruleset and parameter arguments.

@param ruleset The endpoint ruleset.
@param parameterArguments The rule-set parameter identifiers and
                          values to evaluate the rule-set against.
@return The resulting value from the final matched rule.
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/evaluation/RuleEvaluator.java