Issue 1:
IMPORTANT: This repository's issues are reserved for feature requests and bug reports. Do not submit support requests here, see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question.

Steps to reproduce and a minimal demo of the problem

we are using beta 14 with babel compile. when we navigate from one path to a second path the component lifecycle is not being called. if anything happens on the compoent then the ngOnInit will be called.

code pased below.

What steps should we try in your demo to see the problem?

Current behavior

click on the task links, the routerOnActivate will be called but the ngOnInit will not be called. when we click on the back button then the ngOnInit will be called.

Expected/desired behavior

ngOnInit should be called when we navigate to the component.

Other information

main.js

import 'angular2-polyfills';
import 'reflect-metadata';
import 'babel-polyfill';
import {bootstrap} from 'angular2/platform/browser';
import {routeTestComponent} from './app.component';
import {ROUTER_PROVIDERS} from 'angular2/router';
bootstrap(routeTestComponent, [ROUTER_PROVIDERS]);

app.component.js

import {Component} from 'angular2/core';
import {ROUTER_DIRECTIVES,RouteConfig} from 'angular2/router';
import {Dashboard} from './components/dashboard/dashboard.component';
import {About} from './components/about/about.component';
import {Tasks} from './components/tasks/tasks.component';
@Component({
selector: 'route-test',
template: `
<h1>App</h1>
<a [routerLink]="['/Dashboard']" class="link">Dashboard</a>
<a [routerLink]="['/About']" class="link">About</a>
<a [routerLink]="['/Tasks']" class="link">Tasks</a>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path: '/', component: Dashboard, name: 'Dashboard'},
{path: '/about', component: About, name: 'About'},
{path: '/tasks/...', component: Tasks, name: 'Tasks'}

])
export class routeTestComponent { }

components/dashboard

import {Component} from 'angular2/core';
@Component({
selector: 'dashboard',
template: '<h1>Dashboard App</h1>',
directives: [],
inputs:[],
outputs:[],
pipes:[]
})

export class Dashboard { }

components/about

import {Component} from 'angular2/core';
import {Router} from 'angular2/router';
@Component({
selector: 'about',
template: `
<h2>About</h2>
<button (click)="goBack()">Go Back</button>

`,
directives: [],
inputs:[],
outputs:[],
pipes:[]
})

export class About {
from;
constructor(route:Router){
this.router = route;
}
routerOnActivate(to, from) {
this.from = from;
console.log('About: ', to, from);
}

goBack() {
console.log(this.from);
this.router.navigateByInstruction(this.from);
}
}

compoents/tasks/task.component.js

import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router';
import {TasksList} from './tasks-list.component';
@Component({
selector: 'tasks',
template: `
<h2>Tasks</h2>
<router-outlet></router-outlet>

`,
directives: [ROUTER_DIRECTIVES],
inputs:[],
outputs:[],
pipes:[]
})
@RouteConfig([
{path: '/list', component: TasksList, name: 'List', useAsDefault: true}

])
export class Tasks {
routerOnActivate(to, from) {
console.log('Tasks: ', to, from);
this.render();
}
render() { console.log('render fired');}
}

tasks/tasks-list.component.js

import {Component} from 'angular2/core';
import {ROUTER_DIRECTIVES, Router} from 'angular2/router';
@Component({
selector: 'tasks-list',
template: `
<h3>Task-List</h3>
<button (click)="goBack()">Go Back</button>
`,
directives: [ROUTER_DIRECTIVES],
inputs:[],
outputs:[],
pipes:[]
})

export class TasksList {
task = {id : 1}

from: any;

constructor(router: Router) {
this.router = router;
console.log('constructor task-list');
}

routerOnActivate(to, from) {
console.log('Task-List: ', to, from);
}
ngOnChanges(){
console.log('list changes');
}
ngOnInit(){
console.log('here');
}

goBack() {
console.log(this.from);
this.router.navigateByInstruction(this.from);
}
}

index.html

<!DOCTYPE html>
<html>
<head>
<base href="/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ng2</title>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<route-test>Loading...</route-test>
<script src="main.js"></script>
</body>
</html>

Issue 2:
Case: Create a timed observable and test its behaviour using fakeAsync/tick.

describe("failed test", () => {
it("rxjs delay", inject([], fakeAsync(() => {
const obs = Rx.Observable.of("message").delay(1000);
let result = "";

obs.subscribe(val => result = val);

tick(2000);

expect(result).toBe("message");
})));
});

Result:

Expected '' to be 'message'.
at example.spec.js:78:34
at testing.dev.js:1366:22
at Zone.run (angular2-polyfills.js:1243:24)
at testing.dev.js:1365:31
Failed: 1 timer(s) still in the queue.
Error: 1 timer(s) still in the queue.
at new BaseException (angular2.dev.js:7385:21)
at testing.dev.js:1374:15
at FunctionWrapper.apply (angular2.dev.js:327:17)
at FunctionWithParamTokens.execute (testing.dev.js:1947:37)
at TestInjector.execute (testing.dev.js:1868:17)
at Object.<anonymous> (testing.dev.js:2006:44)

Expected: Observable to resolve to completion since the time simulated by tick is greater than the observable's delay.

Version: angular2@2.0.0-beta.8, rxjs@5.0.0-beta2

Platform: karma@0.13.21, jasmine-core@2.3.2, chrome@48.0.2564, typescript@1.8.2