public static function parseOptions($definition)
    {
        preg_match_all('/m:([a-z-]+)(?:\(([^)]*)\))?/i', $definition, $matched, PREG_SET_ORDER);

        $result = [];
        foreach ($matched as $match) {

            if (array_key_exists($match[1], $result)) {
                throw new Exception\AnnotationException(
                    "Duplicate option '" . $match[1] . "'!"
                );
            }

            $result[$match[1]] = isset($match[2]) ? trim($match[2]) : null;
        }
        return $result;
    }