Ok, that makes sense. It's a bit of a conflict with previous needs, though. Perhaps something like this would work?

```js
constructor: function(options){
  this._firstRender = true;
  this.initializeRegions(options || {});

  var args = Array.Prototype.slice.apply(arguments);
  Marionette.ItemView.apply(this, args);
},

// ...

initializeRegions: function(options){

  // ...

  if _.isFunction(this.regions){
    this.regions(options);
  }

}
```

This would give you access to the view options as a parameter of the regions function, but still allow the regions to be initialized before calling the base view constructor.

```js
Marionette.Layout.extend({

  regions: function(options){
    return {...};
  }

});
```