Fix callback being called twice and make it optional

[closes #1104]
Allow for empty filter nodes.

This is useful when the only inputs that are needed are better suited to the attributes node.