public function removeByPropertyPattern($aProperties)
    {
        foreach ($this->aEntries as $sHash => $aEntry) {
            foreach ($aProperties as $aPatterns) {
                foreach ($aPatterns as $sProperty => $sPattern) {
                    if (!array_key_exists($sProperty, $aEntry)) {
                        continue 2;
                    } elseif (!preg_match('/^' . $sPattern . '$/i', $aEntry[$sProperty])) {
                        continue 2;
                    }
                }
                unset($this->aEntries[$sHash]);
            }
        }

        return $this;
    }