Dibujar agujero en UIBlurEffect

Xcode 8.0 - Swift 2.3
Tengo una extensión interna para crear una capa de desenfoque que funciona muy bien:

internal extension UIView {

    /**
     Add and display on current view a blur effect.
     */
    internal func addBlurEffect(style style: UIBlurEffectStyle = .ExtraLight, atPosition position: Int = -1) -> UIView {
        // Blur Effect
        let blurEffectView = self.createBlurEffect(style: style)
        if position >= 0 {
            self.insertSubview(blurEffectView, atIndex: position)
        } else {
            self.addSubview(blurEffectView)
        }
        return blurEffectView
    }

    internal func createBlurEffect(style style: UIBlurEffectStyle = .ExtraLight) -> UIView {
        let blurEffect = UIBlurEffect(style: style)
        let blurEffectView = UIVisualEffectView(effect: blurEffect)
        blurEffectView.frame = self.bounds
        blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
        return blurEffectView
    }

}

La pregunta es: ¿cómo puedo agregar un agujero con forma en la superposición de desenfoque? He hecho muchos intentos:

let p = UIBezierPath(roundedRect: CGRectMake(0.0, 0.0, self.viewBlur!.frame.width, self.viewBlur!.frame.height), cornerRadius: 0.0)
p.usesEvenOddFillRule = true
let f = CAShapeLayer()
f.fillColor = UIColor.redColor().CGColor
f.opacity = 0.5
f.fillRule = kCAFillRuleEvenOdd
p.appendPath(self.holePath)
f.path = p.CGPath
self.viewBlur!.layer.addSublayer(f)

pero el resultado es:

No puedo entender por qué el agujero está bienUIVisualEffectView pero no en_UIVisualEffectBackdropView

ACTUALIZAR

He probado la solución @Arun (con UIBlurEffectStyle.Dark), pero el resultado no es el mismo:

ACTUALIZACIÓN 2

Con la solución de @ Dim_ov tengo:

Para que esto funcione, necesito esconderme_UIVisualEffectBackdropViewDe este modo:

    for v in effect.subviews {
        if let filterView = NSClassFromString("_UIVisualEffectBackdropView") {
            if v.isKindOfClass(filterView) {
                v.hidden = true
            }
        }
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta