I define a filter to be:
- A device that has at least one input
- Containing a list such that an item or number of items can be named as "filtered" and
- A "main output" for items not on that list and
- If an item passes into the device, and that item is the same type of item as one of the "filtered" items, that item will never exit the filter through the "main output", and
- If an item passes into the device, and that item is not the same type of item as one of the "filtered" items, and the "main output" is not obstructed, that item will always exit the filter through the "main output".