Exclude post from the category page by internal tag

routes:

collections:
  /:
    permalink: /{slug}/
    template: index
    filter: 'tag:-hash-hidden'
  /tag/:
    permalink: /{slug}/
    template: tag
    filter: 'tag:-hash-hidden'
taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

Since “taxonomies” doesn’t support the attribute “filter” that’s why I have edited the route file like this.
I would like to hide the post from the website using the internal tag named “#hidden”. It works for the homepage but doesn’t for the tag page.

I have tried by using {{^has tag="#hidden"}}{{/has}}. Using this posts don’t display but it counts as posts and it creates a problem for pagination. It hides posts but displays the next page number.

If anyone can help me or any other suggestion to solve this problem I would be grateful.
Thanks in advance.