We cannot remove the virtual matches() functions, surely?  That is the most important part of the filter interface