                 @logger.fine 'unsubscribe event', topic
 
                 for _topic, trigger of @_trigger
-                    if _topic.match topic
+                    if topic.match(_topic) || _topic.match topic
                         trigger.unsubscribe?.apply @, [topic, @_pool[token]]
 
                         trigger.__counter--

                                fn()

                            catch err
                                console.log err
                                @unsubscribe handler.id

                    next()

                ##
                done: (err)=>
                    return done(err) if err
                    done ?= (err)=>
                        return @logger.error(err) if err

                    floyd.tools.parallel threads, done



            for _topic, trigger of @_trigger

                if topic.match(_topic) || _topic.match topic
                    if !trigger.__counter
                        trigger.__counter = 0

