Is this the correct way to create a route to a specific .hbs file?
Somewhere in your code you should be setting the template engine and the base views path, in the likes of
app.set('views', __dirname+'/views/');
app.set('view engine', 'hbs');

(I assume you have that figured out already)
Having said that, you can either reference a view by its location relative to the views setting, therefore:
res.render('Leagues/EnglishDivision/PremierLeague');

(note there's no leading ./ in there)
OR, reference a view by its template file path (without extension). If you do this, the relative path is computed using the base path from which you start your app. Therefore, if your structure looked like:
  /var/www/project
  │   
  ├─ packjage.json
  └─ src/
       │   
       ├── app.js
       ├── views/
       │   └─── index.hbs
       │   └─── Leagues/
       │       └─── EnglishDivision/
       │           └─── PremierLeague.hbs
       │   
       └─── routes/
          └── Pages.js

Moving to /var/www/project and executing node src/app.js means
res.render('./Leagues/EnglishDivision/PremierLeague');

Will look for a template at /var/www/project/Leagues/EnglishDivision/PremierLeague.hbs
Whereas moving to /var/www/project/src and executing node app.js would instead look for /var/www/project/src/Leagues/EnglishDivision/PremierLeague.hbs
If you need to reference the template by its filepath, you should use the absolute path. For example,  __dirname always holds the current folder, regardless of where were you when executing the start script. Which means__dirname called from Pages.js is /var/www/project/src/routes, and therefore
res.render(__dirname+'/../views/Leagues/EnglishDivision/PremierLeague');

Would point to the intended file.