Run the same workflow several times for the same contact

Run the same workflow several times for the same contact

I would like to create a workflow that is executed every time a contact is subscribed to a list or every time a TAG is applied to him.

For example:
workflow starts when a contact enters the AAA list or when the XXX tag is applied to a contact.

A contact subscribes to the AAA list, the workflow sends an email to the contact and at the end removes the tag "XXX" from the contact (in this case it was not tagged)

at a later time the XXX tag is applied to the same contact (perhaps from other workflows)

QUESTION: Can the worklow be run again for the same contact?