Repository: labstack/echo (go)

Issue:
Param value is blank after v4.1.12
### Issue Description

The latest release `v4.1.12` introduces a bug where a param value is returned as a blank string.

### Checklist

- [x] Dependencies installed
- [x] No typos
- [x] Searched existing issues and docs

### Expected behaviour
If we run the code and access `/users/sharewithme`, it's expected that the following code would return `sharewithme` 
```go
     param := c.Param("username")
     // param should have value "sharewithme"
```

### Actual behaviour

The current release returns blank string

### Steps to reproduce

Run the code below and try the url as demonstrated above...+

### Working code to debug

```go
package main

import (
	"fmt"
	"github.com/labstack/echo/v4"
	"github.com/labstack/echo/v4/middleware"
	"log"
	"net/http/httputil"
	"strings"
)

func main() {
	e := echo.New()

	RegisterAPIRoutes(e)

	e.Logger.Fatal(e.Start(":1234"))
}

func RegisterAPIRoutes(e *echo.Echo) {
	e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
		AllowOrigins:  []string{"*"},
		AllowMethods:  []string{echo.GET, echo.PUT, echo.POST, echo.DELETE},
		AllowHeaders:  []string{echo.HeaderContentType, echo.HeaderAuthorization},
		ExposeHeaders: []string{echo.HeaderAuthorization},
	}))

	e.POST("/users/signup", myFunc)
	e.POST("/users/signup/bulk", myFunc)
	e.POST("/users/survey", myFunc)

	e.GET("/users/:username", myFunc)

	e.GET("/interests/:name/users", myFunc)
	e.GET("/skills/:name/users", myFunc)
}

func myFunc(c echo.Context) error {
	var builder strings.Builder

	log.Println(c.Request())

	reqDump, _ := httputil.DumpRequest(c.Request(), true)

	builder.Write(reqDump)
	for _, name := range c.ParamNames() {
		builder.WriteString(fmt.Sprintf("Parameter: %s | Value: %s", name, c.Param(name)))
	}

	return c.String(200, builder.String())
}

```

### Version/commit
`v4.1.12`

Pull request description:
Fix param value bug
Fixes #1466 

@vishr I would appreciate you taking a look at this and merging this. This is a major regression and I think people would appreciate a quick release fixing this...

Patch:
diff --git a/.travis.yml b/.travis.yml
index 200f508..a1fc876 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,8 @@ go:
   - 1.12.x
   - 1.13.x
   - tip
+env:
+  - GO111MODULE=on
 install:
   - go get -v golang.org/x/lint/golint
 script:
diff --git a/echo.go b/echo.go
index 5f6671e..a6ac0fa 100644
--- a/echo.go
+++ b/echo.go
@@ -227,7 +227,7 @@ const (
 
 const (
 	// Version of Echo
-	Version = "4.1.11"
+	Version = "4.1.13"
 	website = "https://echo.labstack.com"
 	// http://patorjk.com/software/taag/#p=display&f=Small%20Slant&t=Echo
 	banner = `
diff --git a/router.go b/router.go
index 8b15e65..0814597 100644
--- a/router.go
+++ b/router.go
@@ -412,6 +412,7 @@ func (r *Router) Find(method, path string, c Context) {
 				// Consider param route one level up only
 				// if no slash is remaining in search string
 				if cn = nn.findChildByKind(pkind); cn != nil && strings.IndexByte(ns, '/') == -1 {
+					pvalues[len(cn.pnames)-1] = search
 					break
 				}
 				for {


Test patch:
diff --git a/router_test.go b/router_test.go
index cd0817d..449af91 100644
--- a/router_test.go
+++ b/router_test.go
@@ -1118,6 +1118,42 @@ func TestRouterMixedParams(t *testing.T) {
 	testRouterAPI(t, api2)
 }
 
+// Issue #1466
+func TestRouterParam1466(t *testing.T) {
+	e := New()
+	r := e.router
+
+	r.Add(http.MethodPost, "/users/signup", func(c Context) error {
+		return nil
+	})
+	r.Add(http.MethodPost, "/users/signup/bulk", func(c Context) error {
+		return nil
+	})
+	r.Add(http.MethodPost, "/users/survey", func(c Context) error {
+		return nil
+	})
+	r.Add(http.MethodGet, "/users/:username", func(c Context) error {
+		return nil
+	})
+	r.Add(http.MethodGet, "/interests/:name/users", func(c Context) error {
+		return nil
+	})
+	r.Add(http.MethodGet, "/skills/:name/users", func(c Context) error {
+		return nil
+	})
+
+	c := e.NewContext(nil, nil).(*context)
+
+	r.Find(http.MethodGet, "/users/ajitem", c)
+	assert.Equal(t, "ajitem", c.Param("username"))
+
+	r.Find(http.MethodGet, "/users/sharewithme", c)
+	assert.Equal(t, "sharewithme", c.Param("username"))
+
+	r.Find(http.MethodGet, "/users/signup", c)
+	assert.Equal(t, "", c.Param("username"))
+}
+
 func benchmarkRouterRoutes(b *testing.B, routes []*Route) {
 	e := New()
 	r := e.router