Extended Collection::filter() to use callable or object as matcher