How do search for a node that has realtionship match against any element in an array

I have this query where I am trying to fetch clubs that matches as many tags in an array of tags as it can in order.

So far I have something like this (ClubTags is the array of tags):

UNWIND (CASE $ClubTags WHEN then else $ClubTags end) AS tag
MATCH (c)-[r:HAS_TAG]->(t:ClubTag {name:tag})

This matches and returns clubs that match atleast one tag. But I cant seem to make out how I can expand on this to further count r (count of r always returns 1 from within UNWIND). Im guessing UNWIND is not what I should be using here but I am not sure how else I can match against all tags within the array.

edit : The squares in the abouve code are just open close of array that I am using to handle empty clubtags

I think... (still at intermediate level Cypher)

MATCH (c)-[r:HAS_TAG]->(t:ClubTag)
WHERE IN $ClubTags // assuming $ClubTags  is [] when there are no tags
RETURN c, count(r)

ooo I think this would work. I will try it out tomorrow but it makes a lot of sense. Thanks a lot.