wip(core): remove listener when message matched