You're doing it wrong !
I've been wasting some time looking for a solution for that problem, and end up doing the same thing ( using Request $request ) in the functionAction() to send a session variable to a template.
However all of this is wrong. TWIG is able to access to all session variables directly, you don't need to pass any variable in the TWIG render().
To answer the original problem, you should keep the default behavior of indexAction() with no parameter, and remove the " array('token' => $session->get('token')) " from your TWIG render call.
The only thing to know is that you can call the session variable "token" directly in your template, using : {{ app.session.get('token') }}
And let the magic be ! That simple !