                     if filtered
                         if not filter[e.keyCode]
                             return
+                        if filterExt.length
+                            for extraKey in filterExt
+                                if not keyModifiers[extraKey](e)
+                                    return
+
                     if prevent
                         e.preventDefault()
                     if stop

            filtered = false
            scan = true
            filter = {}
            for k in args.slice(1)
                if k is 'stop'
                    stop = true

                    continue
                if not option.filtered
                    continue

                filtered = true
                if keyModifiers[k]
                    filterExt.push k
                    continue

                if keyCodes[k]
                    k = keyCodes[k]
                filter[k] = true
