title: BrowserRouter vs HashRouter
body: <p>below is my router.js</p>
  
  <pre><code>import React from 'react';
  import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
  import { PageSignUp, PageSignIn, PageForgotPsd, PageResetPsd, NotFound } from 'apps/pagesh/';
  
  const RouterAuth = () =&gt; {
    return (
      &lt;Router&gt;
        &lt;Switch&gt;
          &lt;Route path='/' component={PageSignUp} exact/&gt;
          &lt;Route path='/signin' component={PageSignIn}/&gt;
          &lt;Route path='/forgot-password' component={PageForgotPsd}/&gt;
          &lt;Route path='/password-reset' component={PageResetPsd}/&gt;
          &lt;Route component={NotFound} /&gt;
        &lt;/Switch&gt;
      &lt;/Router&gt;
    )
  }
  
  export default RouterAuth;
  </code></pre>
  
  <p>When I use the prop '<code>exact</code>' all the paths are directed to the '<code>NotFound</code>' component when I remove the prop '<code>exact</code>' all the paths are directed to the '<code>PageSignUp</code>' component. Paths are not navigating to their respective components. I am not able to identify the exact issue. Looks strange. Kindly help. Below is my webpack config file and package.json file.</p>
  
  <p>Webpack config</p>
  
  <pre><code>webpack: {
      mode: 'development',
      entry: {
        'auth.min.js': resolve(`common/src/${assetsdir}/scripts/auth.js`),
        'all.min.js': resolve(`${source}/${assetsdir}/scripts/site.js`),
      },
      output: {
        path: resolve(`${destination}/${assetsdir}/scripts/`),
        filename: '[name]'
      },
      module: {
        rules: [{
          test: /\.(js|jsx)$/,
          loader: 'babel-loader',
          exclude: /es5-shim/,
          query: {
            plugins: ['react-require'],
            presets: ['@babel/preset-react', '@babel/preset-env'],
            env: {
              development: {
                plugins: [
                  ['react-transform', {
                    transforms: [{
                      transform: 'react-transform-catch-errors',
                      imports: ['react', 'redbox-react']
                    }]
                  }]
                ]
              }
            },
            compact: false
          }
        }]
      },
      optimization: {
        minimize: true
      },
      plugins: [
        new webpack.ProvidePlugin({
          $: 'jquery',
          jQuery: 'jquery',
          'window.jQuery': 'jquery'
        }),
        new webpack.DefinePlugin({
          'process.version': version,
          'process.env': {
            NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'development')
          }
        }),
      ],
      resolve: {
        modules: [ resolve(__dirname), './', 'node_modules' ],
        alias: {
          'apps': resolve('common/apps'),
          'common': resolve(`common/${assetsdir}/scripts`),
          'settings': resolve(`${sitedir}/data/settings.json`),
          'jquery': resolve('node_modules/jquery/dist/jquery.min'),
          'bootstrap': resolve('node_modules/bootstrap-sass/assets/javascripts/bootstrap/')
        }
      }
    }
  </code></pre>
  
  <p>Package.json</p>
  
  <pre><code>{
    "private": true,
    "name": "sample",
    "version": "0.2.0",
    "description": "metalsmith.js project",
    "main": "build.js",
    "scripts": {
      "start": "cross-env NODE_ENV=development babel-node build.js",
      "build": "cross-env NODE_ENV=production babel-node build.js"
    },
    "devDependencies": {
      "@babel/core": "^7.7.4",
      "@babel/node": "^7.0.0",
      "@babel/plugin-proposal-export-default-from": "^7.7.4",
      "@babel/preset-env": "^7.7.4",
      "@babel/preset-react": "^7.7.4",
      "babel-eslint": "^9.0.0",
      "babel-loader": "^8.0.6",
      "babel-plugin-react-require": "^3.1.1",
      "babel-plugin-react-transform": "^3.0.0",
      "bootstrap-sass": "3.3.7",
      "cross-env": "^5.0.0",
      "css-loader": "^1.0.1",
      "deepmerge": "^2.0.1",
      "es5-shim": "^4.5.13",
      "eslint": "^4.14.0",
      "eslint-plugin-react": "^7.14.3",
      "fast-image-size": "0.1.3",
      "file-exists": "^2.0.0",
      "jquery": "^1.11.3",
      "jquery.cookie": "^1.4.1",
      "json-loader": "^0.5.7",
      "jstransformer-pug": "^0.2.3",
      "lodash": "^4.17.15",
      "metalsmith": "^2.3.0",
      "metalsmith-autoprefixer": "^1.1.1",
      "metalsmith-copy-assets-540": "^1.0.0",
      "metalsmith-in-place": "^2.0.1",
      "metalsmith-layouts": "^1.8.1",
      "metalsmith-permalinks": "^0.5.0",
      "metalsmith-pug": "^2.0.0",
      "metalsmith-sass": "^1.4.0",
      "metalsmith-serve": "0.0.7",
      "metalsmith-watch": "^1.0.3",
      "minimist": "^1.2.0",
      "modernizr": "^3.3.1",
      "moment": "^2.18.1",
      "pug": "^2.0.4",
      "react": "^16.12.0",
      "react-day-picker": "^6.2.1",
      "react-dom": "^16.12.0",
      "react-input-mask": "^1.2.2",
      "react-router-dom": "^5.1.2",
      "react-transform-catch-errors": "^1.0.2",
      "redbox-react": "^1.5.0",
      "respond.js": "^1.4.2",
      "style-loader": "^0.23.1",
      "uglify-js": "^3.6.0",
      "uglifyjs-webpack-plugin": "^2.2.0",
      "validator": "^9.4.1",
      "webpack": "^4.29.6",
      "webpack-cli": "^3.3.0",
      "webpack-dev-server": "^3.2.1"
    },
    "dependencies": {
      "axios": "^0.19.0",
      "babel-upgrade": "^1.0.1",
      "jquery-ui-sass": "0.0.1",
      "react-redux": "^5.1.2",
      "redux": "^4.0.4",
      "redux-thunk": "^2.3.0"
    }
  }
  </code></pre>