<p dir="auto"><strong>I'm submitting a ...</strong>  (check one with "x")</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="[X] bug report
[ ] feature request
[ ] support request =&gt; Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question"><pre class="notranslate"><code class="notranslate">[X] bug report
[ ] feature request
[ ] support request =&gt; Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
</code></pre></div>
<p dir="auto"><strong>Current behavior</strong><br>
Adding the <code class="notranslate">index: true</code> attribute to a route breaks the <code class="notranslate">path</code> attribute. By this i mean that navigating to <code class="notranslate">localhost/#/</code> gives me the route which has <code class="notranslate">index:true</code>, but navigating to the path that belongs to that route (e.g. <code class="notranslate">/step/1</code>) errors with: <code class="notranslate">Cannot match any routes: 'step/1'</code></p>
<p dir="auto"><strong>Expected/desired behavior</strong><br>
The path specified should work the same way <code class="notranslate">/</code> does.</p>
<p dir="auto"><strong>Reproduction of the problem</strong><br>
Changing:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{ path: '/error', component: ErrorPage },
    { path: '/step/1', component: StartPage },
    { path: '/step/2', component: TwoPage },
    { path: '/step/3', component: ThreePage },
    { path: '/step/4', component: FourPage },
    { path: '/step/5', component: FivePage },
    { path: '/setup', component: SetupPage },"><pre class="notranslate"><code class="notranslate">{ path: '/error', component: ErrorPage },
    { path: '/step/1', component: StartPage },
    { path: '/step/2', component: TwoPage },
    { path: '/step/3', component: ThreePage },
    { path: '/step/4', component: FourPage },
    { path: '/step/5', component: FivePage },
    { path: '/setup', component: SetupPage },
</code></pre></div>
<p dir="auto">To:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{ path: '/error', component: ErrorPage },
    { path: '/step/1', component: StartPage, index: true },
    { path: '/step/2', component: TwoPage },
    { path: '/step/3', component: ThreePage },
    { path: '/step/4', component: FourPage },
    { path: '/step/5', component: FivePage },
    { path: '/setup', component: SetupPage },"><pre class="notranslate"><code class="notranslate">{ path: '/error', component: ErrorPage },
    { path: '/step/1', component: StartPage, index: true },
    { path: '/step/2', component: TwoPage },
    { path: '/step/3', component: ThreePage },
    { path: '/step/4', component: FourPage },
    { path: '/step/5', component: FivePage },
    { path: '/setup', component: SetupPage },
</code></pre></div>
<p dir="auto">breaks the path<br>
<strong>What is the motivation / use case for changing the behavior?</strong><br>
It is not expected behaviour.</p>
<p dir="auto"><strong>Please tell us about your environment:</strong></p>
<ul dir="auto">
<li><strong>Angular version:</strong> 2.0.0-rc.2</li>
<li><strong>Browser:</strong> [all | Chrome  51.0.2704.84 ]</li>
<li><strong>Language:</strong>  TypeScript</li>
</ul>
<p dir="auto"><strong>Steps to reproduce and a minimal demo of the problem</strong></p>
<ol dir="auto">
<li>Clone <code class="notranslate">https://github.com/sap9433/angular2-webpack-starter-kit</code>,</li>
<li>npm install &amp; npm start<br>
App works fine because it's using <code class="notranslate">"angular2": "2.0.0-beta.7"</code>and <code class="notranslate">"typings": "^0.7.9",</code></li>
<li>Update the dependencies <code class="notranslate">npm-check-update -u</code></li>
<li>package.json is updated with <code class="notranslate">"angular2": "2.0.0-beta.12"</code>, <code class="notranslate">"typings": "^0.7.9",</code></li>
<li>Update your ambient dependencies as well to</li>
</ol>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="{
  &quot;ambientDependencies&quot;: {
    &quot;es6-shim&quot;: &quot;github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd&quot;
  }
}"><pre class="notranslate"><code class="notranslate">{
  "ambientDependencies": {
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd"
  }
}
</code></pre></div>
<ol start="6" dir="auto">
<li>Do <code class="notranslate">npm install</code> and <code class="notranslate">npm start</code></li>
</ol>
<p dir="auto">Now you will get plethora of <strong>duplicate identifier error</strong> like following</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="ERROR angular2-webpack-starter-kit/typings/browser/ambient/es6-shim/index.d.ts
(8,14): error TS2300: Duplicate identifier 'PropertyKey'.

ERROR in typings/browser/ambient/es6-shim/index.d.ts
(11,5): error TS2300: Duplicate identifier 'done'.
.....
....."><pre class="notranslate"><code class="notranslate">ERROR angular2-webpack-starter-kit/typings/browser/ambient/es6-shim/index.d.ts
(8,14): error TS2300: Duplicate identifier 'PropertyKey'.

ERROR in typings/browser/ambient/es6-shim/index.d.ts
(11,5): error TS2300: Duplicate identifier 'done'.
.....
.....
</code></pre></div>
<p dir="auto"><em>What steps should we try in your demo to see the problem?</em></p>
<ol dir="auto">
<li>Run the app in your local</li>
<li>look at the dev-server logs.</li>
</ol>
<p dir="auto"><strong>Current behavior</strong><br>
Updating angular2, typings, and ambient dependencies to latest release throwing  <code class="notranslate">error TS2300: Duplicate identifier</code> errors.</p>
<p dir="auto"><strong>Expected/desired behavior</strong><br>
App shouldn't throw <code class="notranslate">error TS2300: Duplicate identifier</code> errors</p>
<p dir="auto"><strong>Other information</strong><br>
It might as well be an es6 shim issue with typescript , as both the files are using same global variable</p>