diff -Naur -x '*.orig' -x '*.rej' salt-2019.2.3.orig/salt/modules/pip.py salt-2019.2.3/salt/modules/pip.py
--- salt-2019.2.3.orig/salt/modules/pip.py	2020-01-16 13:54:28.000000000 +0700
+++ salt-2019.2.3/salt/modules/pip.py	2020-01-16 13:55:41.000000000 +0700
@@ -433,6 +433,7 @@
             no_cache_dir=False,
             cache_dir=None,
             no_binary=None,
+            extra_args=None,
             **kwargs):
     '''
     Install packages with pip
@@ -604,6 +605,24 @@
     no_cache_dir
         Disable the cache.
 
+    extra_args
+        pip keyword and positional arguments not yet implemented in salt
+
+        .. code-block:: yaml
+
+            salt '*' pip.install pandas extra_args="[{'--latest-pip-kwarg':'param'}, '--latest-pip-arg']"
+
+        .. warning::
+
+            If unsupported options are passed here that are not supported in a
+            minion's version of pip, a `No such option error` will be thrown.
+
+    Will be translated into the following pip command:
+
+    .. code-block:: bash
+
+        pip install pandas --latest-pip-kwarg param --latest-pip-arg
+
     CLI Example:
 
     .. code-block:: bash
@@ -887,6 +906,24 @@
     if trusted_host:
         cmd.extend(['--trusted-host', trusted_host])
 
+    if extra_args:
+        # These are arguments from the latest version of pip that
+        # have not yet been implemented in salt
+        for arg in extra_args:
+            # It is a keyword argument
+            if isinstance(arg, dict):
+                # There will only ever be one item in this dictionary
+                key, val = arg.popitem()
+                # Don't allow any recursion into keyword arg definitions
+                # Don't allow multiple definitions of a keyword
+                if isinstance(val, (dict, list)):
+                    raise TypeError("Too many levels in: {}".format(key))
+                # This is a a normal one-to-one keyword argument
+                cmd.extend([key, val])
+            # It is a positional argument, append it to the list
+            else:
+                cmd.append(arg)
+
     cmd_kwargs = dict(saltenv=saltenv, use_vt=use_vt, runas=user)
 
     if kwargs:
diff -Naur -x '*.orig' -x '*.rej' salt-2019.2.3.orig/salt/states/pip_state.py salt-2019.2.3/salt/states/pip_state.py
--- salt-2019.2.3.orig/salt/states/pip_state.py	2020-01-16 13:54:28.000000000 +0700
+++ salt-2019.2.3/salt/states/pip_state.py	2020-01-16 13:55:41.000000000 +0700
@@ -404,6 +404,7 @@
               no_cache_dir=False,
               cache_dir=None,
               no_binary=None,
+              extra_args=None,
               **kwargs):
     '''
     Make sure the package is installed
@@ -665,6 +666,23 @@
                 - reload_modules: True
                 - exists_action: i
 
+    extra_args
+        pip keyword and positional arguments not yet implemented in salt
+
+        .. code-block:: yaml
+
+            pandas:
+              pip.installed:
+                - name: pandas
+                - extra_args:
+                  - --latest-pip-kwarg: param
+                  - --latest-pip-arg
+
+        .. warning::
+
+            If unsupported options are passed here that are not supported in a
+            minion's version of pip, a `No such option error` will be thrown.
+
 
     .. _`virtualenv`: http://www.virtualenv.org/en/latest/
     '''
@@ -901,6 +919,7 @@
         use_vt=use_vt,
         trusted_host=trusted_host,
         no_cache_dir=no_cache_dir,
+        extra_args=extra_args,
         **kwargs
     )
 
