First of all, this seems to be a bad coding style, having a method called "authenticate" required form something called "authentication.routes", the first is a verb, the second the plural of a noun. Or better to say by name, the first is a method, the secound an object. So Maybe you are indeed returning an object somethere in "authentication.routes".
Now, more likely,
read this[
^]
your export is wrong.
module.exports = {
router:router
}
var blabla = require('./routes/blabla.js');
app.use(blabla.router)
And, by the way, the reason the authentification route fails with this error is, because athentification comes first. In other words, this is the first route to be evaluated, the other would fail too, but you never get to that point, right?