@WReach But why the match with missing `b` is a match? I have a busy week but I surely miss something here: `Cases[
<|"a" -> 1, "b" -> 2, "c" -> 3|>, KeyValuePattern[{"a" -> a_, "b" -> b_, "c" -> c_}] , {0, \[Infinity]} ]` - according to this there is only one match.
<|"a" -> 1, "b" -> 2, "c" -> 3|>, KeyValuePattern[{"a" -> a_, "b" -> b_, "c" -> c_}] , {0, \[Infinity]} ]` - according to this there is only one match.