use $dispatcher as a function instead of calling __invoke() on it; fixes #20