Almost wonderful. Not perfect yet, but best I can do.

It’s amazing how much you can do in one line of code:

return overloadings.entrySet().stream().filter(entry ->
entry.getKey().matches(args))

.findAny().orElseThrow(IllegalArgumentException::new).getValue();