(Note that 'slim/include' is automatically loaded by Asciidoctor's template converter).
By default, Slim will resolve the path relative to the current directory. However, I wanted to be able to take this further, so I added additional load paths to the Slim configuration. I still think the Reveal.js converter should follow in the footsteps and subclass the composite converter. It will open up a lot of doors and make packaging possible.
Reveal.js Slim templates are based on HTML5 Slim templates, before major refactoring. IIRC the generated markup of generic HTML5 template and reveal.js is very similar. Thus I’d suggest to start with HTML5 Slim templates, which are already cleaned and deduplicated, and modify them for reveal.js. It’d be IMO easier way, without reinventing the wheel.