Use is_callable instead of method_exists on dispatch to avoid calling private methods in controllers