Но опять проблема... если в проекте используется другой роутер, то yiisoft/router всё-равно подтянется, так как пакет yiisoft/yii-view зависит от него. Это ничего страшного?
Если вынести интерфейс в отдельный пакет, а в CsrfMiddleware использовать setToken вместо withAttribute, то все требования по независимости пакетов друг от друга будут соблюдены