{restart 'name'} throws away everything the current page has rendered and runs
the named page instead - its _inits, PHP, template and _exits - as if
it had been asked for. There is no round trip to the browser, so the address bar keeps the
original URL, and the request's values are still there.
Variables assigned on the tag - {restart 'list', $message = 'Saved'} - become
global variables of the new page; a plain named option is not passed on. From PHP,
padRestart ( 'list', [ 'message' => 'Saved' ] ) does the same.
The switch does not happen inside the tag: it records the wish, and the engine starts over at its next step. Pages that keep restarting each other are stopped after twenty restarts with an error. Use {redirect} instead when the browser should end up on the new address - after a form post, so that a reload does not post again.