Repository: xonsh/xonsh

Issue:
`pip` completion used for `pipx` command
I have `pipx` installed and its bash completion enabled (following instructions from `pipx completions`).  This works fine in Bash, but in Xonsh completion for regular `pip` is used instead.

## xonfig

<details>

```
$ xonfig
+------------------+---------------------+
| xonsh            | 0.9.17.dev2         |
| Git SHA          | 97a921c7            |
| Commit Date      | Apr 8 14:48:23 2020 |
| Python           | 3.6.9               |
| PLY              | 3.11                |
| have readline    | True                |
| prompt toolkit   | 2.0.10              |
| shell type       | prompt_toolkit2     |
| pygments         | 2.6.1               |
| on posix         | True                |
| on linux         | True                |
| distro           | ubuntu              |
| on darwin        | False               |
| on windows       | False               |
| on cygwin        | False               |
| on msys2         | False               |
| is superuser     | False               |
| default encoding | utf-8               |
| xonsh encoding   | utf-8               |
| encoding errors  | surrogateescape     |
+------------------+---------------------+
```

</details>

## Expected Behavior
`pipx` completion to be used

## Current Behavior
`pip` completion is used.

## Steps to Reproduce

* Install `pipx`
* Try `pipx <tab>`.  Notice output is the same as for `pip <tab>`

## Possible fix
Adding the following (adds a trailing `\b` to the regex) to my `.xonshrc` seems to fix it:

```py
# Temp fix for `pipx` completion
import xonsh.completers.pip
import re
xonsh.completers.pip.PIP_RE = re.compile(r"\bx?pip(?:\d|\.)*\b")
```

Did some quick tests with: `pip <tab>`, `pip2 <tab>`, `pip3 <tab>`, `pipx <tab>`, `pip.3 <tab>`, `pip3.6 <tab>` and all seemed to give the expected results.
Also tested `xpip <tab>`.  This seems to (try to) use completion but I'm getting an error here (somewhere in the jedi code, probably unrelated).


Discussion:

Patch:
diff --git a/news/fix_pip_completer.rst b/news/fix_pip_completer.rst
new file mode 100644
index 00000000..7d38bbb9
--- /dev/null
+++ b/news/fix_pip_completer.rst
@@ -0,0 +1,23 @@
+**Added:**
+
+* <news item>
+
+**Changed:**
+
+* <news item>
+
+**Deprecated:**
+
+* <news item>
+
+**Removed:**
+
+* <news item>
+
+**Fixed:**
+
+* ``pip`` completer no longer erroneously fires for ``pipx``
+
+**Security:**
+
+* <news item>
diff --git a/xonsh/completers/pip.py b/xonsh/completers/pip.py
index 179689ee..25b96bcb 100644
--- a/xonsh/completers/pip.py
+++ b/xonsh/completers/pip.py
@@ -9,12 +9,12 @@ import xonsh.lazyasd as xl
 
 @xl.lazyobject
 def PIP_RE():
-    return re.compile(r"\bx?pip(?:\d|\.)*")
+    return re.compile(r"\bx?pip(?:\d|\.)*\b")
 
 
 @xl.lazyobject
 def PIP_LIST_RE():
-    return re.compile(r"\bx?pip(?:\d|\.)* (?:uninstall|show)")
+    return re.compile(r"\bx?pip(?:\d|\.)*\b (?:uninstall|show)")
 
 
 @xl.lazyobject


Test patch:
diff --git a/tests/completers/test_pip_completer.py b/tests/completers/test_pip_completer.py
index 506464ab..20991346 100644
--- a/tests/completers/test_pip_completer.py
+++ b/tests/completers/test_pip_completer.py
@@ -33,6 +33,9 @@ def test_pip_list_re(line):
         "![thewholepipandpaboodle uninstall",
         "$[littlebopip show",
         "!(boxpip uninstall",
+        "pipx",
+        "vim pip_",
+        "pip_",
     ],
 )
 def test_pip_list_re(line):