This idea came up in response to another topic strictly about filtering what goes into chests, but since it kind of has a broader scope as well, I figured I'd give it its own topic, too.
My suggestion would be to create a "router" block.
You would attach this (like a hopper) to any kind of container. This will be its input. It will automatically attach to any other surrounding containers, which would serve as outputs. You'd then open it up and, in the GUI, place whatever items you want it to route. Then, whenever a defined item is found in the input container, it's taken and sent, round-robin, into the outputs.
If it has a redstone charge it works opposite; it'll grab any items from the input container that AREN'T among those defined in the GUI.
Unlike hoppers, filters would NOT be considered a container. This would prevent filters from connecting to other filters directly, thereby avoiding any logic mess.
That being said, this would be an expensive item to create. My suggestion would be:
Stone - Hopper - Stone Dropper - Comparator - Dropper Stone - Dropper - Stone
Alternatively it could require Dispensers instead of Droppers, to increase its cost even more. (+3 bows)
I think that would adequately represent the 1-input, multi-output nature of it, as well as the logical complexity involved.
Let me know what you think. I have yet to find any quality filtering technique that works...