Issue 1:
Got the following when building (app still runs though):

flutter: The following assertion was thrown building MaterialApp(dirty, state: _MaterialAppState#c51fa):
flutter: 'package:flutter/src/widgets/app.dart': Failed assertion: line 169 pos 15: 'navigatorObservers !=
flutter: null': is not true.
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter: https://github.com/flutter/flutter/issues/new?template=BUG.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2 new WidgetsApp (package:flutter/src/widgets/app.dart:169:15)
flutter: #3 _MaterialAppState.build (package:flutter/src/material/app.dart:410:14)
flutter: #4 StatefulElement.build (package:flutter/src/widgets/framework.dart:3809:27)
flutter: #5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3721:15)
flutter: #6 Element.rebuild (package:flutter/src/widgets/framework.dart:3547:5)
flutter: #7 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3701:5)
flutter: #8 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3848:11)
flutter: #9 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3696:5)
flutter: #10 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2950:14)
flutter: #11 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:12)
flutter: #12 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3732:16)
flutter: #13 Element.rebuild (package:flutter/src/widgets/framework.dart:3547:5)
flutter: #14 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3701:5)
flutter: #15 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3848:11)
flutter: #16 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3696:5)
flutter: #17 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2950:14)
flutter: #18 Element.updateChild (package:flutter/src/widgets/framework.dart:2753:12)
flutter: #19 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:909:16)
flutter: #20 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:880:5)
flutter: #21 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:826:17)
flutter: #22 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2266:19)
flutter: #23 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:825:13)
flutter: #24 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:712:7)
flutter: #25 runApp (package:flutter/src/widgets/binding.dart:756:7)

Issue 2:
By specifying the builder of a MaterialApp widget, it should be possible to use a custom Navigator (or no navigator at all. The assertions of the WidgetsApp constructor make it impossible.

Error:

I/flutter (19749): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (19749): The following assertion was thrown building MaterialApp(dirty, state: _MaterialAppState#f5965):
I/flutter (19749): 'package:flutter/src/widgets/app.dart': Failed assertion: line 93 pos 15: 'navigatorObservers !=
I/flutter (19749): null': is not true.

Removing these 2 assertions fixes the problem:

assert(navigatorObservers != null),
assert(onGenerateRoute != null || navigatorObservers == const <NavigatorObserver>[]),

Example App:

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

final Map<String, WidgetBuilder> routes = {
'/': (context) => HomePage(),
'/credits': (context) => CreditsPage(),
};

RouteFactory customOnGenerateRoute = (RouteSettings settings) {
var name = settings.name;
print('going to route $name');
return new MaterialPageRoute(
builder: routes[name],
settings: settings,
);
};

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Navigator Demo',
theme: new ThemeData(primarySwatch: Colors.blue),
builder: (BuildContext context, Widget child) {
return Navigator(
onGenerateRoute: customOnGenerateRoute,
);
},
);
}
}

class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Home')),
body: Center(
child: RaisedButton(
child: Text('Credits'),
onPressed: () {
Navigator.of(context).pushNamed('/credits');
},
),
),
);
}
}

class CreditsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Credits')),
body: Center(
child: Text('made by boformer'),
),
);
}
}