public function preIntercept($preInterceptor): ConfigurableRoute
    {
        if (!is_callable($preInterceptor) && !($preInterceptor instanceof PreInterceptor) && !class_exists((string) $preInterceptor)) {
            throw new \InvalidArgumentException(
                    'Given pre interceptor must be a callable, an instance of '
                    . PreInterceptor::class
                    . ' or a class name of an existing pre interceptor class'
            );
        }

        $this->preInterceptors[] = $preInterceptor;
        return $this;
    }