either an object that provides a method "filter" or a function. either the
function "filter" in the object, or the method itself should have the following
signature:
int filter(object request, object response, mixed ... args)
a filter should return a true value if the filter was a success. otherwise, false (zero)
should be returned, and the request will not be handled further. returning false indicates
the filter wishes to perform a redirect or render function in order to preempt the request.