Ken,
  I tried some filtering when I first came in and could not get it to work.  I managed to accomplish the same thing you wanted with standard function definitions.  The new function for adding a card and removing pairs is "addCardAndRemoveAnyPairs" which I think is a lot more intention revealing.  Even though my code is still too verbose because of lacking a filtering option on my card arrays, I was still able to reduce a lot of code in the Hand class.