After looking at the code a bit closer it seems that this block of code...

```php
        $dir = '';
        $class = $cacheProvider['cache'];

        if (!empty($cacheProvider['options']['dir'])) {
            $dir = $cacheProvider['options']['dir'];
        }

        $class = $this->classMapper($class);
```
...  Is really a factory for Assetic Cache's.  Would it make more sense to move this (and the class mapper) out into it's own class definition?  Maybe that would help clear up some of the confusion with the current code and separate concerns a little better?  Not sure... it's such a small amount of code that perhaps doing so is just on over abstraction.