l3.param -> l3.pattern
pattern matching has ability to specify certain keys must be present
assignment should fail if hasKeys fails
tighten up the tests
in pattern matching, allow exact matches in addition to variables