public function isAllowed($spec, $pattern)
    {
        if (! array_key_exists($spec, $this->catalogue)) {
            return false;
        }
        $features = $this->catalogue[$spec];
        if (! is_array($pattern)) {
            $pattern = [$pattern];
        }
        $needle = 0;
        foreach ($pattern as $term) {
            $needle |= $term;
        }
        return $needle === ($features & $needle);
    }