Plugin with virtual page

I’m trying to write a plugin with a virtual page. This plugin use a custom template (plugins/myplugin/templates/virutal.php) to display a simple text. The problem is that the template isn’t loaded but the “site/template/default.php” is applied instead. Please could you let me know what I’m missing in the below code:

'routes' => [
        // virtual page
    [

          'pattern' => 'virtual',
          'action'  => function () {
                return Page::factory([
                    'slug' => 'virtual',
                    'template' => __DIR__ . '/templates/virtual.php',
                    'model' => 'virtual',
                    'content' => [
                        'title' => 'This is not a real page',
                        'date'  => '2019-05-01',
                        'text'  => 'The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn’t listen.'
                    ]
                ]);
          },
    ],

Thanks in advance for your help

The template should be referenced by its name, like the model, not a path:

 'template' => 'virtual',

'__DIR__ . '/templates/virtual.php'.
or
'virtual',
produce the same result: the “site/templates/default.php” is applied instead

How did you register the template?

So simple… I just missed to register the template. Just added the following line and everything is working fine:

'templates' => [
        'virtual' => __DIR__ . '/templates/virtual.php',
],

Thank you so much Pixelijn!