AngularJSでui-routerを使用していますが、画面の構成をJavaのTilesのように制御したいです。

複数の画面機能が存在し、同様に複数の共通パーツ機能が存在します。
特定の画面機能でどの共通パーツを表示するかは、
JSONファイル等で管理したいです。

画面A,Bがあるときに、パーツCを各画面で利用する場合を考えます。
画面Aの$stateProvider#stateの設定で、viewでパーツCを定義すれば、
ui-viewで表示できることは認識していますが、
この方法だと画面Bの$stateProvider#stateの設定も必要になると思っています。

画面A,Bの設定とは別に、パーツCのstate設定だけしておいて、
それを各画面にインクルードできないかと考えたのですが、よい方法がわかりません。

今はng-includeでインクルードしていますが、この方法だと、
別の都合で、パーツCのコントローラを変更しにくくなってしまうのでどうしたものかと。。。

追記
パーツをライブラリ化して異なるアプリから利用する場合、
各アプリでパーツのコントローラの変更を行おうと思うと、
下記のように設定する必要があり、ng-includeでは、指定先のHTMLにコントローラが
記載されているので、実現できない。

ライブラリ側

angular.module('lib').config(function() {
  $stateProvider.state('partsState', 
    {url: '...', templateUrl: 'hoge.html', controller: 'orgCtrl'});
});

アプリ側

angular.module('app', [lib])..run(function($state) {
  $state.get('org').controller = 'customCtrl';
});