public function getAssocPreference( $name, $index = null, $ignoreExpired = true )
    {
        $values = [];

        foreach( $this->getPreferences() as $pref )
        {
            if( strpos( $pref->getName(), $name ) === 0 )
            {
                if( ( $index === null ) || ( $pref->getIx() == $index ) )
                {
                    if( !$ignoreExpired && $pref->getExpiresAt() && ( $pref->getExpiresAt() < new \DateTime() ) )
                        continue;

                    if( strpos( $pref->getName(), '.' ) !== false )
                        $key = substr( $pref->getName(), strlen( $name ) + 1 );

                    if( $key )
                    {
                        $key = $pref->getIx() . '.' . $key;
                        $values = $this->_processKey( $values, $key, $pref->getValue() );
                    }
                    else
                    {
                        $values[ $pref->getIx() ] = $pref->getValue();
                    }
                }
            }
        }

        if( $values === [] )
            return false;

        return $values;
    }