The problem OP is trying to solve can be described as follows:
1. There is a web page that provides various ways of searching for things
2. Search criteria can vary in type and number of parameters
3. It should be possible to combine different types of criteria into a single search
4. It should be easy to add new search types
5. Search criteria should be reusable
The challenge: come up with a design that satisfies all of the above and do it in a TDD manner.
The best ideas are the crazy ones. If you have a crazy idea and it works, it's really valuable.—Kent Beck